From 18604559bb87f4948ec14c3d04b06b62fcd5f68d Mon Sep 17 00:00:00 2001 From: Gleb Kozyrev Date: Sat, 10 Oct 2015 16:11:45 +0300 Subject: [PATCH] Store all cfgs in Compilation instead of features only --- src/cargo/ops/cargo_rustc/compilation.rs | 4 ++-- src/cargo/ops/cargo_rustc/mod.rs | 10 ++++++++-- src/cargo/ops/cargo_test.rs | 4 ++-- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/cargo/ops/cargo_rustc/compilation.rs b/src/cargo/ops/cargo_rustc/compilation.rs index 758da67db..9e15288e4 100644 --- a/src/cargo/ops/cargo_rustc/compilation.rs +++ b/src/cargo/ops/cargo_rustc/compilation.rs @@ -42,7 +42,7 @@ pub struct Compilation<'cfg> { pub to_doc_test: Vec, /// Features enabled during this compilation. - pub features: HashSet, + pub cfgs: HashSet, config: &'cfg Config, } @@ -58,7 +58,7 @@ impl<'cfg> Compilation<'cfg> { binaries: Vec::new(), extra_env: HashMap::new(), to_doc_test: Vec::new(), - features: HashSet::new(), + cfgs: HashSet::new(), config: config, } } diff --git a/src/cargo/ops/cargo_rustc/mod.rs b/src/cargo/ops/cargo_rustc/mod.rs index 918929187..fab000d17 100644 --- a/src/cargo/ops/cargo_rustc/mod.rs +++ b/src/cargo/ops/cargo_rustc/mod.rs @@ -148,11 +148,17 @@ pub fn compile_targets<'a, 'cfg: 'a>(pkg_targets: &'a PackagesToBuild<'a>, } } - if let Some(feats) = cx.resolve.features(root.package_id()) { - cx.compilation.features.extend(feats.iter().cloned()); + let root_pkg = root.package_id(); + if let Some(feats) = cx.resolve.features(root_pkg) { + cx.compilation.cfgs.extend(feats.iter().map(|feat| { + format!("feature=\"{}\"", feat) + })); } for (&(ref pkg, _), output) in cx.build_state.outputs.lock().unwrap().iter() { + if pkg == root_pkg { + cx.compilation.cfgs.extend(output.cfgs.iter().cloned()); + } let any_dylib = output.library_links.iter().any(|l| { !l.starts_with("static=") && !l.starts_with("framework=") }); diff --git a/src/cargo/ops/cargo_test.rs b/src/cargo/ops/cargo_test.rs index ff2b6b417..e44374831 100644 --- a/src/cargo/ops/cargo_test.rs +++ b/src/cargo/ops/cargo_test.rs @@ -136,8 +136,8 @@ fn run_doc_tests(options: &TestOptions, p.arg("--test-args").arg(&test_args.connect(" ")); } - for feat in compilation.features.iter() { - p.arg("--cfg").arg(&format!("feature=\"{}\"", feat)); + for cfg in compilation.cfgs.iter() { + p.arg("--cfg").arg(cfg); } for (_, libs) in compilation.libraries.iter() { -- 2.30.2